home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 - Homepage / CHIP.BIN / share / webmaste / csehtmlp / csehtmlp.exe / {app} / ParserRules / modula2.xs < prev    next >
Encoding:
Text File  |  2002-04-22  |  13.1 KB  |  418 lines

  1. //Language: Modula2
  2. //Copyright (c) 1992-2002 Altium Limited             
  3. //All rights reserved.                               
  4. //http://www.dream-com.com                           
  5. //contact@dream-com.com                              
  6.  
  7. // states
  8. State=snormal
  9. State=sstring
  10. State=scomment
  11. State=sasm
  12. // tokens
  13. Token=tnone
  14. Token=tstring
  15. Token=tcomment
  16. Token=tident
  17. Token=tinteger
  18. Token=tfloat
  19. Token=tresword
  20. Token=tassembler
  21. Token=turl
  22. Token=twhitespace
  23. //delims
  24. Delimiters=;.,:'"{}[]()?!@#$%^&*-+=|\/
  25.  
  26. // reswords
  27. snormal 'ARRAY'          snormal tresword
  28. snormal 'ASM'            snormal tresword
  29. snormal 'BEGIN'          snormal tresword
  30. snormal 'BOOLEAN'        snormal tresword
  31. snormal 'BY'             snormal tresword
  32. snormal 'CARDINAL'       snormal tresword
  33. snormal 'CASE'           snormal tresword
  34. snormal 'CHAR'           snormal tresword
  35. snormal 'CLASS'          snormal tresword
  36. snormal 'CONST'          snormal tresword
  37. snormal 'DEFINITION'     snormal tresword
  38. snormal 'DESTROY'        snormal tresword
  39. snormal 'DIV'            snormal tresword
  40. snormal 'DO'             snormal tresword
  41. snormal 'ELSE'           snormal tresword
  42. snormal 'ELSIF'          snormal tresword
  43. snormal 'END'            snormal tresword
  44. snormal 'EXIT'           snormal tresword
  45. snormal 'EXPORT'         snormal tresword
  46. snormal 'FOR'            snormal tresword
  47. snormal 'FOREIGN'        snormal tresword
  48. snormal 'FROM'           snormal tresword
  49. snormal 'IF'             snormal tresword
  50. snormal 'IMPLEMENTATION' snormal tresword
  51. snormal 'IMPORT'         snormal tresword
  52. snormal 'INHERIT'        snormal tresword
  53. snormal 'INIT'           snormal tresword
  54. snormal 'INLINE'         snormal tresword
  55. snormal 'INTEGER'        snormal tresword
  56. snormal 'LONGCARD'       snormal tresword
  57. snormal 'LONGINT'        snormal tresword
  58. snormal 'LONGREAL'       snormal tresword
  59. snormal 'LOOP'           snormal tresword
  60. snormal 'MOD'            snormal tresword
  61. snormal 'MODULE'         snormal tresword
  62. snormal 'NIL'            snormal tresword
  63. snormal 'OF'             snormal tresword
  64. snormal 'POINTER'        snormal tresword
  65. snormal 'PROCEDURE'      snormal tresword
  66. snormal 'REAL'           snormal tresword
  67. snormal 'RECORD'         snormal tresword
  68. snormal 'REPEAT'         snormal tresword
  69. snormal 'RETURN'         snormal tresword
  70. snormal 'SET'            snormal tresword
  71. snormal 'THEN'           snormal tresword
  72. snormal 'TO'             snormal tresword
  73. snormal 'TYPE'           snormal tresword
  74. snormal 'UNTIL'          snormal tresword
  75. snormal 'VAR'            snormal tresword
  76. snormal 'WHILE'          snormal tresword
  77. snormal 'WITH'           snormal tresword
  78.  
  79. // numbers
  80. snormal [0-9][0-9]*                            snormal  tinteger
  81. snormal [1-9][0-9]*\.[0-9]*                    snormal  tfloat
  82. snormal [1-9][0-9]*{\.[0-9]+}|e{[\+\-]}|[0-9]+ snormal  tfloat
  83.  
  84. //idents
  85. snormal   [a-z_A-Z][a-z_A-Z0-9]*  snormal   tident
  86.  
  87. //white space
  88. snormal #32*                      snormal   twhitespace
  89.  
  90. //strings
  91. snormal   \"                     sstring   tstring
  92. sstring   [^\"]*                 sstring   tstring
  93. sstring   \"                     snormal    tstring
  94. sstring   \"\"                   sstring   tstring
  95. sstring   $                      snormal    tstring
  96.  
  97. //comments
  98. snormal   (\*                     scomment tcomment
  99. scomment  [^\*]*                  scomment tcomment
  100. scomment  \*[^)]                  scomment tcomment
  101. scomment  [\*]*)                  snormal  tcomment
  102.  
  103. // asm
  104. snormal   'asm'                   sasm      tresword
  105. sasm      [a-z_A-Z0-9;,@-.]*      sasm      tassembler
  106. sasm      'end'                   snormal   tresword
  107. // asm comment
  108. sasm      (\*                     scomment  tcomment push
  109. // asm reswords
  110. sasm 'AAA'      sasm tresword
  111. sasm 'AAD'      sasm tresword
  112. sasm 'AAM'      sasm tresword
  113. sasm 'AAS'      sasm tresword
  114. sasm 'ADC'      sasm tresword
  115. sasm 'ADD'      sasm tresword
  116. sasm 'AND'      sasm tresword
  117. sasm 'ARPL'     sasm tresword
  118. sasm 'BOUND'    sasm tresword
  119. sasm 'BSF'      sasm tresword
  120. sasm 'BSR'      sasm tresword
  121. sasm 'BSWAP'    sasm tresword
  122. sasm 'BT'       sasm tresword
  123. sasm 'BTC'      sasm tresword
  124. sasm 'BTR'      sasm tresword
  125. sasm 'BTS'      sasm tresword
  126. sasm 'CALL'     sasm tresword
  127. sasm 'CBW'      sasm tresword
  128. sasm 'CDQ'      sasm tresword
  129. sasm 'CLC'      sasm tresword
  130. sasm 'CLD'      sasm tresword
  131. sasm 'CLI'      sasm tresword
  132. sasm 'CLTS'     sasm tresword
  133. sasm 'CMC'      sasm tresword
  134. sasm 'CMP'      sasm tresword
  135. sasm 'CMPS'     sasm tresword
  136. sasm 'CMPSB'    sasm tresword
  137. sasm 'CMPSD'    sasm tresword
  138. sasm 'CMPSW'    sasm tresword
  139. sasm 'CMPXCHG'  sasm tresword
  140. sasm 'CWD'      sasm tresword
  141. sasm 'CWDE'     sasm tresword
  142. sasm 'DAA'      sasm tresword
  143. sasm 'DAS'      sasm tresword
  144. sasm 'DEC'      sasm tresword
  145. sasm 'DIV'      sasm tresword
  146. sasm 'ENTER'    sasm tresword
  147. sasm 'ESC'      sasm tresword
  148. sasm 'F2XM1'    sasm tresword
  149. sasm 'FABS'     sasm tresword
  150. sasm 'FADD'     sasm tresword
  151. sasm 'FADDP'    sasm tresword
  152. sasm 'FBLD'     sasm tresword
  153. sasm 'FBSTP'    sasm tresword
  154. sasm 'FCHS'     sasm tresword
  155. sasm 'FCLEX'    sasm tresword
  156. sasm 'FCOM'     sasm tresword
  157. sasm 'FCOMP'    sasm tresword
  158. sasm 'FCOMPP'   sasm tresword
  159. sasm 'FCOS'     sasm tresword
  160. sasm 'FDECSTP'  sasm tresword
  161. sasm 'FDISI'    sasm tresword
  162. sasm 'FDIV'     sasm tresword
  163. sasm 'FDIVP'    sasm tresword
  164. sasm 'FDIVR'    sasm tresword
  165. sasm 'FDIVRP'   sasm tresword
  166. sasm 'FENI'     sasm tresword
  167. sasm 'FFREE'    sasm tresword
  168. sasm 'FIADD'    sasm tresword
  169. sasm 'FICOM'    sasm tresword
  170. sasm 'FICOMP'   sasm tresword
  171. sasm 'FIDIV'    sasm tresword
  172. sasm 'FIDIVR'   sasm tresword
  173. sasm 'FILD'     sasm tresword
  174. sasm 'FIMUL'    sasm tresword
  175. sasm 'FINCSTP'  sasm tresword
  176. sasm 'FINIT'    sasm tresword
  177. sasm 'FIST'     sasm tresword
  178. sasm 'FISTP'    sasm tresword
  179. sasm 'FISUB'    sasm tresword
  180. sasm 'FISUBR'   sasm tresword
  181. sasm 'FLD'      sasm tresword
  182. sasm 'FLD1'     sasm tresword
  183. sasm 'FLDCW'    sasm tresword
  184. sasm 'FLDENV'   sasm tresword
  185. sasm 'FLDL2E'   sasm tresword
  186. sasm 'FLDL2T'   sasm tresword
  187. sasm 'FLDLG2'   sasm tresword
  188. sasm 'FLDLN2'   sasm tresword
  189. sasm 'FLDPI'    sasm tresword
  190. sasm 'FLDZ'     sasm tresword
  191. sasm 'FMUL'     sasm tresword
  192. sasm 'FMULP'    sasm tresword
  193. sasm 'FNCLEX'   sasm tresword
  194. sasm 'FNDISI'   sasm tresword
  195. sasm 'FNENI'    sasm tresword
  196. sasm 'FNINIT'   sasm tresword
  197. sasm 'FNOP'     sasm tresword
  198. sasm 'FNSAVE'   sasm tresword
  199. sasm 'FNSTCW'   sasm tresword
  200. sasm 'FNSTENV'  sasm tresword
  201. sasm 'FNSTSW'   sasm tresword
  202. sasm 'FPATAN'   sasm tresword
  203. sasm 'FPREM'    sasm tresword
  204. sasm 'FPREM1'   sasm tresword
  205. sasm 'FPTAN'    sasm tresword
  206. sasm 'FRNDINT'  sasm tresword
  207. sasm 'FRSTOR'   sasm tresword
  208. sasm 'FSAVE'    sasm tresword
  209. sasm 'FSCALE'   sasm tresword
  210. sasm 'FSETPM'   sasm tresword
  211. sasm 'FSIN'     sasm tresword
  212. sasm 'FSINCOS'  sasm tresword
  213. sasm 'FSQRT'    sasm tresword
  214. sasm 'FST'      sasm tresword
  215. sasm 'FSTCW'    sasm tresword
  216. sasm 'FSTENV'   sasm tresword
  217. sasm 'FSTP'     sasm tresword
  218. sasm 'FSTSW'    sasm tresword
  219. sasm 'FSUB'     sasm tresword
  220. sasm 'FSUBP'    sasm tresword
  221. sasm 'FSUBR'    sasm tresword
  222. sasm 'FSUBRP'   sasm tresword
  223. sasm 'FTST'     sasm tresword
  224. sasm 'FUCOM'    sasm tresword
  225. sasm 'FUCOMP'   sasm tresword
  226. sasm 'FUCOMPP'  sasm tresword
  227. sasm 'FWAIT'    sasm tresword
  228. sasm 'FXAM'     sasm tresword
  229. sasm 'FXCH'     sasm tresword
  230. sasm 'FXTRACT'  sasm tresword
  231. sasm 'FYL2X'    sasm tresword
  232. sasm 'FYL2XP1'  sasm tresword
  233. sasm 'HLT'      sasm tresword
  234. sasm 'IDIV'     sasm tresword
  235. sasm 'IMUL'     sasm tresword
  236. sasm 'IN'       sasm tresword
  237. sasm 'INC'      sasm tresword
  238. sasm 'INSB'     sasm tresword
  239. sasm 'INSD'     sasm tresword
  240. sasm 'INSW'     sasm tresword
  241. sasm 'INT'      sasm tresword
  242. sasm 'INTO'     sasm tresword
  243. sasm 'INVD'     sasm tresword
  244. sasm 'INVLPG'   sasm tresword
  245. sasm 'IRET'     sasm tresword
  246. sasm 'IRETD'    sasm tresword
  247. sasm 'JA'       sasm tresword
  248. sasm 'JAE'      sasm tresword
  249. sasm 'JB'       sasm tresword
  250. sasm 'JBE'      sasm tresword
  251. sasm 'JC'       sasm tresword
  252. sasm 'JCXZ'     sasm tresword
  253. sasm 'JE'       sasm tresword
  254. sasm 'JECXZ'    sasm tresword
  255. sasm 'JG'       sasm tresword
  256. sasm 'JGE'      sasm tresword
  257. sasm 'JL'       sasm tresword
  258. sasm 'JLE'      sasm tresword
  259. sasm 'JMP'      sasm tresword
  260. sasm 'JNA'      sasm tresword
  261. sasm 'JNAE'     sasm tresword
  262. sasm 'JNB'      sasm tresword
  263. sasm 'JNBE'     sasm tresword
  264. sasm 'JNC'      sasm tresword
  265. sasm 'JNE'      sasm tresword
  266. sasm 'JNG'      sasm tresword
  267. sasm 'JNGE'     sasm tresword
  268. sasm 'JNL'      sasm tresword
  269. sasm 'JNLE'     sasm tresword
  270. sasm 'JNO'      sasm tresword
  271. sasm 'JNP'      sasm tresword
  272. sasm 'JNS'      sasm tresword
  273. sasm 'JNZ'      sasm tresword
  274. sasm 'JO'       sasm tresword
  275. sasm 'JP'       sasm tresword
  276. sasm 'JPE'      sasm tresword
  277. sasm 'JPO'      sasm tresword
  278. sasm 'JS'       sasm tresword
  279. sasm 'JZ'       sasm tresword
  280. sasm 'LAHF'     sasm tresword
  281. sasm 'LAR'      sasm tresword
  282. sasm 'LDS'      sasm tresword
  283. sasm 'LEA'      sasm tresword
  284. sasm 'LEAVE'    sasm tresword
  285. sasm 'LES'      sasm tresword
  286. sasm 'LFS'      sasm tresword
  287. sasm 'LGDT'     sasm tresword
  288. sasm 'LGS'      sasm tresword
  289. sasm 'LIDT'     sasm tresword
  290. sasm 'LLDT'     sasm tresword
  291. sasm 'LMSW'     sasm tresword
  292. sasm 'LOCK'     sasm tresword
  293. sasm 'LODS'     sasm tresword
  294. sasm 'LODSB'    sasm tresword
  295. sasm 'LODSD'    sasm tresword
  296. sasm 'LODSW'    sasm tresword
  297. sasm 'LOOP'     sasm tresword
  298. sasm 'LOOPD'    sasm tresword
  299. sasm 'LOOPDE'   sasm tresword
  300. sasm 'LOOPDNE'  sasm tresword
  301. sasm 'LOOPDNZ'  sasm tresword
  302. sasm 'LOOPDZ'   sasm tresword
  303. sasm 'LOOPE'    sasm tresword
  304. sasm 'LOOPNE'   sasm tresword
  305. sasm 'LOOPNZ'   sasm tresword
  306. sasm 'LOOPZ'    sasm tresword
  307. sasm 'LSL'      sasm tresword
  308. sasm 'LSS'      sasm tresword
  309. sasm 'LTR'      sasm tresword
  310. sasm 'MOV'      sasm tresword
  311. sasm 'MOVS'     sasm tresword
  312. sasm 'MOVSB'    sasm tresword
  313. sasm 'MOVSD'    sasm tresword
  314. sasm 'MOVSW'    sasm tresword
  315. sasm 'MOVSX'    sasm tresword
  316. sasm 'MOVZX'    sasm tresword
  317. sasm 'MUL'      sasm tresword
  318. sasm 'NEG'      sasm tresword
  319. sasm 'NOP'      sasm tresword
  320. sasm 'NOT'      sasm tresword
  321. sasm 'OR'       sasm tresword
  322. sasm 'OUT'      sasm tresword
  323. sasm 'OUTSB'    sasm tresword
  324. sasm 'OUTSD'    sasm tresword
  325. sasm 'OUTSW'    sasm tresword
  326. sasm 'POP'      sasm tresword
  327. sasm 'POPA'     sasm tresword
  328. sasm 'POPAD'    sasm tresword
  329. sasm 'POPF'     sasm tresword
  330. sasm 'POPFD'    sasm tresword
  331. sasm 'PUSH'     sasm tresword
  332. sasm 'PUSHA'    sasm tresword
  333. sasm 'PUSHAD'   sasm tresword
  334. sasm 'PUSHF'    sasm tresword
  335. sasm 'PUSHFD'   sasm tresword
  336. sasm 'RCL'      sasm tresword
  337. sasm 'RCR'      sasm tresword
  338. sasm 'REP'      sasm tresword
  339. sasm 'REPE'     sasm tresword
  340. sasm 'REPNE'    sasm tresword
  341. sasm 'REPNZ'    sasm tresword
  342. sasm 'REPZ'     sasm tresword
  343. sasm 'RET'      sasm tresword
  344. sasm 'RETF'     sasm tresword
  345. sasm 'RETN'     sasm tresword
  346. sasm 'ROL'      sasm tresword
  347. sasm 'ROR'      sasm tresword
  348. sasm 'SAHF'     sasm tresword
  349. sasm 'SAL'      sasm tresword
  350. sasm 'SAR'      sasm tresword
  351. sasm 'SBB'      sasm tresword
  352. sasm 'SCAS'     sasm tresword
  353. sasm 'SCASB'    sasm tresword
  354. sasm 'SCASD'    sasm tresword
  355. sasm 'SCASW'    sasm tresword
  356. sasm 'SEGCS'    sasm tresword
  357. sasm 'SEGDS'    sasm tresword
  358. sasm 'SEGES'    sasm tresword
  359. sasm 'SEGFS'    sasm tresword
  360. sasm 'SEGGS'    sasm tresword
  361. sasm 'SEGSS'    sasm tresword
  362. sasm 'SETA'     sasm tresword
  363. sasm 'SETAE'    sasm tresword
  364. sasm 'SETB'     sasm tresword
  365. sasm 'SETBE'    sasm tresword
  366. sasm 'SETC'     sasm tresword
  367. sasm 'SETE'     sasm tresword
  368. sasm 'SETG'     sasm tresword
  369. sasm 'SETGE'    sasm tresword
  370. sasm 'SETL'     sasm tresword
  371. sasm 'SETLE'    sasm tresword
  372. sasm 'SETNA'    sasm tresword
  373. sasm 'SETNAE'   sasm tresword
  374. sasm 'SETNB'    sasm tresword
  375. sasm 'SETNBE'   sasm tresword
  376. sasm 'SETNC'    sasm tresword
  377. sasm 'SETNE'    sasm tresword
  378. sasm 'SETNG'    sasm tresword
  379. sasm 'SETNGE'   sasm tresword
  380. sasm 'SETNL'    sasm tresword
  381. sasm 'SETNLE'   sasm tresword
  382. sasm 'SETNO'    sasm tresword
  383. sasm 'SETNP'    sasm tresword
  384. sasm 'SETNS'    sasm tresword
  385. sasm 'SETNZ'    sasm tresword
  386. sasm 'SETO'     sasm tresword
  387. sasm 'SETP'     sasm tresword
  388. sasm 'SETPE'    sasm tresword
  389. sasm 'SETPO'    sasm tresword
  390. sasm 'SETS'     sasm tresword
  391. sasm 'SETZ'     sasm tresword
  392. sasm 'SGDT'     sasm tresword
  393. sasm 'SHL'      sasm tresword
  394. sasm 'SHLD'     sasm tresword
  395. sasm 'SHR'      sasm tresword
  396. sasm 'SHRD'     sasm tresword
  397. sasm 'SIDT'     sasm tresword
  398. sasm 'SLDT'     sasm tresword
  399. sasm 'SMSW'     sasm tresword
  400. sasm 'STC'      sasm tresword
  401. sasm 'STD'      sasm tresword
  402. sasm 'STI'      sasm tresword
  403. sasm 'STOS'     sasm tresword
  404. sasm 'STOSB'    sasm tresword
  405. sasm 'STOSD'    sasm tresword
  406. sasm 'STOSW'    sasm tresword
  407. sasm 'STR'      sasm tresword
  408. sasm 'SUB'      sasm tresword
  409. sasm 'TEST'     sasm tresword
  410. sasm 'VERR'     sasm tresword
  411. sasm 'VERW'     sasm tresword
  412. sasm 'WAIT'     sasm tresword
  413. sasm 'WBINVD'   sasm tresword
  414. sasm 'XADD'     sasm tresword
  415. sasm 'XCHG'     sasm tresword
  416. sasm 'XLAT'     sasm tresword
  417. sasm 'XOR'      sasm tresword
  418.